The present invention is directed to the field of video graphics, and is particularly concerned with the simulation of random patterns in a video display, such as the spray pattern produced by a manually controlled artist's airbrush.
In the field of video graphics, various painting capabilities are available which enable a user to simulate the application of a brushstroke of paint on a video display. Typically, the user might select the color of the paint and the width of the brushstroke through appropriate entries on a computer keyboard. Then, through the movement of a pen across a tablet or the movement of a mouse across a surface, the user directs where the brushstroke is to appear in an image displayed on a video monitor. The computer detects the relative positions of the pen and the tablet, or the movement of the mouse, and causes a display of the appropriate color and width to appear at that portion of the video screen corresponding to the detected location.
The simulation of a brushstroke on a video screen is a relatively straightforward matter since the concentration of "paint" is similar along the length of the brushstroke. Every picture element (pixel) of the video image in the path of the brush is actuated to produce a display of the selected color. One limitation associated with video painting programs is that the resulting display often lacks the feeling of texture. This limitation is due to the fact that all of the colors are applied in similar concentrations. To alleviate this situation, it is desirable to produce different concentrations of paint in a video display, for example to provide a greater feeling of texture in the resulting picture In particular, it is desirable to simulate the spray pattern of randomly mixed paint and air generated by an airbrush of the type that is used for photographic editing and in the graphic arts.
To simulate the effects of a paint brush in a video system, a raster mask is created to define the paint pattern produced by the brush. Basically, the raster mask defines a group of pixels related to the shape of the brush. The mask has multiple cells or locations, each of which corresponds to a pixel in the defined group. Each cell contains one or more values which determine the display characteristics, e.g., color, of the corresponding pixels. These display characteristics are reproduced along the length of the brush stroke to generate the video image.
In the past, attempts at simulating the effect of an airbrush have employed a raster mask defining a circular group of pixels with a graded alpha parameter. The alpha parameter is a control or key signal used in video graphics to determine the transparency of an image by attenuating the color tristimulus (i.e., red, green and blue) components of the image. To simulate an airbrush, the cells at the center of the mask are provided with an alpha value of 1.0, and the alpha value decreases in a direction away from the center so that the cells on the periphery of the mask have a value at or near zero. Accordingly, the concentration of paint is most dense in the center of the spray pattern and gradually decreases to provide a smooth blend to zero at the edges of the pattern.
Although this approach provides a better transition between colors than solid concentration brushstrokes, it is still not truly representative of the spray pattern that is generated by a typical airbrush More particularly, if the spray pattern generated with this varying alpha mask is repeated at each incremental position along the length of the brushstroke, it creates a distinct stripe which is darkest at the center and fades towards its edges. In contrast, the actual spray pattern produced by an airbrush is more random in nature, and thus does not produce such a noticeable stripe when the airbrush is swept across a piece of paper or the like. Accordingly, it is desirable to provide a video simulation of an airbrush spray in which the spray pattern is randomly varied along the brushstroke, to thereby produce a more realistic simulation of texture in a videographic display.